﻿using System;

namespace _016_默认数组元素初始化_值类型和引用类型对比
{
    public struct Point { public int X, Y; }

    public class Pointc { public int X, Y; }

    class Program
    {
        static void Main(string[] args)
        {
            Point[] a = new Point[1000];
            int x = a[500].X; // 0
            Console.WriteLine(x);


            Pointc[] pc = new Pointc[1000];
            //int y = pc[500].X; // 运行时错误，NullReferenceException异常
            // 为了避免这个错误，我们必须在实例化之后显式实例化1000个Pointc实例：
            for (int i = 0; i < pc.Length; i++)
            {
                pc[i] = new Pointc();
            }
            int y = pc[500].X;
            Console.WriteLine(y);
            // 无论是任何元素类型，数组本身总是引用类型对象。
            // 例如，下面的语句是合法的：
            int[] int_a = null;
            Console.ReadKey();
        }
    }
}
